Skip to content

10차 배포 - 10#375

Merged
HeeMang-Lee merged 202 commits intomainfrom
dev
Aug 11, 2025
Merged

10차 배포 - 10#375
HeeMang-Lee merged 202 commits intomainfrom
dev

Conversation

@HeeMang-Lee
Copy link
Copy Markdown
Member

@HeeMang-Lee HeeMang-Lee commented Aug 11, 2025

10차 배포 - 10

Summary by CodeRabbit

  • 신기능/개선

    • MCP 요청 대기시간을 45초로 확대하여 장시간 처리 시 성공률 향상.
    • Brave 기반 기능의 STDIO 연결 안정성 개선로 상호작용 신뢰성 강화.
    • 런타임 의존성 정리로 컨테이너 이미지 경량화 및 부팅/업데이트 효율 개선.
  • 구성 변경

    • 일부 자동 구성 경로를 비활성화하여 예기치 않은 동작을 방지하고 안정성 강화.
  • 작업(Chores)

    • 베이스 이미지 교체 및 설치 과정 최적화, 캐시/불필요 패키지 정리로 보안성과 유지보수성 개선.

Ksr-ccb and others added 30 commits May 28, 2025 11:50
Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* chore: 도커 설정파일에 레디스 추가

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Baek jonghyun <69610809+jong-0126@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* chore: 도커 설정파일에 레디스 추가

* feat: Jwt 토큰 로그인과 Oauth 기본설정

* fix: 오류수정

* fix: 생성자 누락값 수정

* fix: 생성자 누락값 수정

* chore: 코드정리

* feat: Oauth 구조 변경중..

* feat: 카카오톡 로그인 + jwt 생성 테스트

* feat: 레디스 설정추가

* chore: 코드 정리

* refactor: OAuth2LoginSuccessHandler 책임분리

* refactor: 필터에서 이중작업 정리

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Baek jonghyun <69610809+jong-0126@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* Revert "Create run-test.yaml"

This reverts commit 3ca826f.

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* CI/CD AWS 연동

* CI/CD branches 범위 수정

---------

Co-authored-by: Ksr-ccb <harang4282@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* Revert "Create run-test.yaml"

This reverts commit 3ca826f.

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* CI/CD AWS 연동

* CI/CD branches 범위 수정

* CI/CD AWS 연동

---------

Co-authored-by: Ksr-ccb <harang4282@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* feat(build.gradle): validation 의존성 추가

* feat : CreateQuizDto 생성

* feat : QuizCategoryRepository 추가

* feat(QuizService) : json 파일 데이터 Quiz 엔티티로 변환 후 저장 기능 추가

* feat : QuizCategory 예외 코드 추가

* feat : uploadQuizJson에 예외 코드 사용' 추가

* feat(QuizController) : quiz 업로드 api 추가

* feat(QuizController) : QuizService의 uploadQuizJson 연동

* Ignore application-local.properties

* feat : 카테고리 타입 생성 api 추가

* refactor(QuizCategoryService) : 메서드 isPresent로 변경

* refactor : 코드래빗 피드백 기반 누락 및 오타 수정

* docker-compose.yml 케시 삭제
* chore: AuthUser, Role 클래스 global.dto 패키지로 이동

* chore: OAuth 패키지 이름 변경

* chore: 주석 및 띄어쓰기 수정

* feat: OAuth2 응답객체 생성 및 수정

* refactor: OAuth2 서비스 로직 리팩토링

* chore: 임시 랜딩페이지 추가

* chore: Role 클래스를 user.entity 패키지로 이동

* refactor: 소셜정보 가져올 때, 예외처리 추가
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* Revert "Create run-test.yaml"

This reverts commit 3ca826f.

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* CI/CD AWS 연동

* CI/CD branches 범위 수정

* CI/CD AWS 연동

* CI/CD AWS 연동

* CI/CD AWS 연동

* 수정

* commit

* 환경변수로 수정

* commit

* deploy.yml 수정

* commit

* deploy 수정

---------

Co-authored-by: Ksr-ccb <harang4282@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* feat: Ai, 서비스 구현 및 Config 추가.

서비스와 빈 생성을 위한 해당 Config 추가.

* feat:AiService

* refactor: Ai, 서비스 및 컨트롤러 코드 수정.

작성했던 API 명세서에 맞추어 기능 및 동작 수정.

* temp : commit for merge

* feat: AI, 테스트코드 구현1.

* refactor: aiService subscriptionId 반영

---------

Co-authored-by: Kimyoonbeom <kimybeom@naver.com>
Co-authored-by: ChoiHyuk <wannabeing@naver.com>
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* chore: 패키지 구조 정리

* feat: 요일->int, int->요일 바꾸기

* feat: 요일->int, int->요일 바꾸기

* chore: docker-compose.yml gitignore 추가

* temp: temp commit for pull

* temp: temp commit for pull

* feat: 구독 엔티티 구조 변경 및 구독 정보 조회

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Baek jonghyun <69610809+jong-0126@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* Revert "Create run-test.yaml"

This reverts commit 3ca826f.

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* CI/CD AWS 연동

* CI/CD branches 범위 수정

* CI/CD AWS 연동

* CI/CD AWS 연동

* CI/CD AWS 연동

* 수정

* commit

* 환경변수로 수정

* commit

* deploy.yml 수정

* commit

* deploy 수정

* commit

* properties 중요정보 환경변수 처리

---------

Co-authored-by: Ksr-ccb <harang4282@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* Revert "Create run-test.yaml"

This reverts commit 3ca826f.

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* CI/CD AWS 연동

* CI/CD branches 범위 수정

* CI/CD AWS 연동

* CI/CD AWS 연동

* CI/CD AWS 연동

* 수정

* commit

* 환경변수로 수정

* commit

* deploy.yml 수정

* commit

* deploy 수정

* commit

* properties 중요정보 환경변수 처리

* deploy 파일 환경 변수 export

---------

Co-authored-by: Ksr-ccb <harang4282@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* chore: 필요없는 어노테이션 삭제

* chore: 공통응답 DTO 수정

- `@RequiredArgsConstructor`는 빌더를 사용한다면 추후 삭제해야 함

* feat: 구독/구독로그 예외처리 추가 및 수정

* feat: 구독기간 enum 클래스 추가

* chore: 구독로그 엔티티에 누락된 컬럼 추가 및 생성자 수정

* refactor: 구독생성자 수정 및 업데이트메서드 추가

* feat: 구독(Subscription) 생성/수정 로직 추가

- SubscriptionLog도 함께 생성되게 추가

* chore: QuizCategory 엔티티에 Getter 추가

* chore: 공통응답 DTO 빌더 삭제

* refactor: 구독로그 테이블명 변경 → 구독내역(SubscriptionHistory)

* refactor: 구독테이블에 N+1(QuizCategory) 문제 수정

문제카테고리(QuizCategory)의 경우, 구독내역이 생성될 때마다 쿼리가 중복되어 발생할 수있다고 판단되어 미리 FetchJoin 설정

* feat: 구독 취소 로직 추가

* refactor: QuizCategory 는 생성하는 것이 아닌 조회하는 방식으로 로직 수정

* chore: 예외처리 간단 수정

* refactor: 이메일 동시성문제를 유니크제약조건과 try-catch로 방지

* chore: 엔티티 수정시간과 시간이 다를 수 있기 때문에 엔티티자체의 수정시간을 사용하도록 변경

* chore: QuizCategoryRepository 알맞는 메서드명으로 변경

* chore: 날짜계산을 Days가 아닌 Month로 변경

`plusMonths()` 함수 사용
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* chore: 패키지 구조 정리

* feat: 요일->int, int->요일 바꾸기

* feat: 요일->int, int->요일 바꾸기

* chore: docker-compose.yml gitignore 추가

* temp: temp commit for pull

* temp: temp commit for pull

* feat: 구독 엔티티 구조 변경 및 구독 정보 조회

* fix: 충돌수정 및 변수형 일치문제 해결

* feat: 구독취소, 회원탈퇴

* chore: 각 api별 권한 추가 (계속 추가되어야함)

* chore: Quiz_category Enum 삭제

* feat: 로그인 회원 마이페이지 확인 (구독로그 포함)

* feat: 구독 비활성화, (임시) 업데이트

* test: 구독 조회 비활성화(로그생성은 아직x) 테스트코드, 로그인 마이페이지 기본기능 테스트 기능

* test: 테스트코드수정

* chore: Quiz_category Enum 삭제 후처리

* chore: Dto 이름 수정 및 파일정리

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Baek jonghyun <69610809+jong-0126@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* feat : 이메일 발송을 위한 SMTP 관련 의존성 추가

* feat : 유연성 및 확장성을 위해 MailConfig 추가

* feat : MimeMessage 기반 Html형식 메일 전송 메서드 추가

* feat(UserService) : 인증 코드 생성

* feat : VerificationCode 서비스, 예외 추가

* feat : 인증코드 검증 성공 시, 인증코드 삭제 기능 추가

* feat : 인증 코드 발급 Controller 클래스 추가

* feat : 인증 코드 발송 기능 추가

* refactor : verify 메서드 반환타입 void로 변경

* feat : 인증 코드 관련 api jwt 검증 제외 설정

* fix : 변경된 에러 코드로 인한 실행 오류 수정

* feat : 피드백 기반 수정

* feat : 인증코드 검증 시도 횟수 추가

* refactor : MailConfig 위치 변경
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* Revert "Create run-test.yaml"

This reverts commit 3ca826f.

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* CI/CD AWS 연동

* CI/CD branches 범위 수정

* CI/CD AWS 연동

* CI/CD AWS 연동

* CI/CD AWS 연동

* 수정

* commit

* 환경변수로 수정

* commit

* deploy.yml 수정

* commit

* deploy 수정

* commit

* properties 중요정보 환경변수 처리

* deploy 파일 환경 변수 export

* 도커 추가하여 배포

* commit

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* commit

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

---------

Co-authored-by: Ksr-ccb <harang4282@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* Revert "Create run-test.yaml"

This reverts commit 3ca826f.

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* CI/CD AWS 연동

* CI/CD branches 범위 수정

* CI/CD AWS 연동

* CI/CD AWS 연동

* CI/CD AWS 연동

* 수정

* commit

* 환경변수로 수정

* commit

* deploy.yml 수정

* commit

* deploy 수정

* commit

* properties 중요정보 환경변수 처리

* deploy 파일 환경 변수 export

* 도커 추가하여 배포

* commit

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* commit

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

---------

Co-authored-by: Ksr-ccb <harang4282@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* Revert "Create run-test.yaml"

This reverts commit 3ca826f.

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* ADD workflow

* CI/CD AWS 연동

* CI/CD branches 범위 수정

* CI/CD AWS 연동

* CI/CD AWS 연동

* CI/CD AWS 연동

* 수정

* commit

* 환경변수로 수정

* commit

* deploy.yml 수정

* commit

* deploy 수정

* commit

* properties 중요정보 환경변수 처리

* deploy 파일 환경 변수 export

* 도커 추가하여 배포

* commit

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* commit

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

* 도커 추가하여 배포

---------

Co-authored-by: Ksr-ccb <harang4282@gmail.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* temp : commit for merge

* feat: chroma 연동, RAG 구조 구현

그에 따른 AiService 파일 수정.

* refactor: chroma 연동, RAG 구조 구현 수정.
* build: mysql-connector 버전 업데이트

보안 이슈로 버전 업데이트

* refactor: OAuth2 예외 처리 수정 및 생성

UserException에서 분리했음

* chore: OAuth2 카카오 응답객체 예외처리 수정

* fix: OAuth2 Github 로그인 시, 이메일 누락 방지 로직 추가

accessToken 활용하여 이메일 가져오기

* feat: OAuth2 네이버 로그인 기능 추가

공통 유틸메서드를 제공하기 위해 추상클래스 생성

* chore: OAuth2 추상클래스 적용

* chore: OAuth2 데이터(attributes) 파싱 예외처리 코드 추가

* chore: OAuth2Service를 OAuth2 패키지로 이동 및 패키지명 수정

사용하지 않는 Controller, Service, Repository 삭제

* chore: 간단 로직 수정
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* feat: 문제 추천1 차

* feat: 각 문제별 정답률 계산, 유저 개인의 정답률 계산

* feat: 문제를 내어주는 두가지 방법 *

- getTodayQuiz -> getTodayQuizNew (O)
- getTodayQuizNew -> getTodayQuiz (X)

둘중에 하나씩만 쓰거나  getTodayQuiz -> getTodayQuizNew 해야함

리턴값은 지금 api 형식으로 만든다고 QuizDto 인데,
Quiz로 바꿔서 줄 수 있음

* feat: 문제를 내어주는 두가지 방법 *

- getTodayQuiz -> getTodayQuizNew (O)
- getTodayQuizNew -> getTodayQuiz (X)

둘중에 하나씩만 쓰거나  getTodayQuiz -> getTodayQuizNew 해야함

리턴값은 지금 api 형식으로 만든다고 QuizDto 인데,
Quiz로 바꿔서 줄 수 있음

* test: 문제를 내어주는 두가지 방법 테스트코드

* fix: 포특밧 되돌려줌

* refactor: 정답률 포멧 스케일 통일화

* fix: 오류검증

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Baek jonghyun <69610809+jong-0126@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* chore : initialize project structure (#2)

* chore: initialize project structure

* chore: initialize project structure

* chore: initialize project structure

* fix: 엔티티 오류수정 및 설정파일 오류 수정

* 📝 Add docstrings to `dev` (#3)

Docstrings generation was requested by @Ksr-ccb.

* #2 (comment)

The following files were modified:

* `src/main/java/com/example/cs25/domain/ai/exception/AiException.java`
* `src/main/java/com/example/cs25/domain/mail/entity/MailLog.java`
* `src/main/java/com/example/cs25/domain/mail/exception/MailException.java`
* `src/main/java/com/example/cs25/domain/oauth/exception/OauthException.java`
* `src/main/java/com/example/cs25/domain/quiz/exception/QuizException.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/entity/UserQuizAnswer.java`
* `src/main/java/com/example/cs25/domain/userQuizAnswer/exception/UserQuizAnswerException.java`
* `src/main/java/com/example/cs25/domain/users/entity/User.java`
* `src/main/java/com/example/cs25/domain/users/exception/UserException.java`
* `src/main/java/com/example/cs25/domain/users/vo/Subscription.java`
* `src/main/java/com/example/cs25/global/exception/BaseException.java`
* `src/main/java/com/example/cs25/global/exception/GlobalExceptionHandler.java`

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Create run-test.yaml

* Create PULL_REQUEST_TEMPLATE.md

* refactor: ERD 수정으로 인한 Entity 수정 (#4)

* refactor: ERD 수정으로 인한 Entity 수정.

* refactor: ERD 수정으로 인한 Entity 수정2.

* chore: 도커 볼륨 구조 변경

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Baek jonghyun <69610809+jong-0126@users.noreply.github.com>
Co-authored-by: crocusia <132359536+crocusia@users.noreply.github.com>
Co-authored-by: Kimyoonbeom <101162650+Kimyoonbeom@users.noreply.github.com>
* feat : 깃허브 url Parser 추가

* feat : 크롤링 기능 추가

* feat : 프로젝트 내에 저장 기능 추가

* feat : 크롤링한 파일을 프로젝트 폴더 내에 저장하는 기능 추가

* chore : chroma 설정 주석 해제

* feat : 컨트롤러 추가

* feat : VectorStore에 저장 메서드 추가

* refactor : List<Document> 전역변수에서 지역변수로 변경

* feat : CrawlerController 예외 추가
test:
- 정상 체점 후 데이터 저장
- 구독 정보 없는 경우 예외 처리
- 퀴즈 정보 없는 경우 예외 처리
HeeMang-Lee and others added 23 commits July 27, 2025 03:28
* refactor: 중복처리 방지키TTL 설정

* refactor: 매 자정마다 셋 비우는 로직 추가 및 첫 아이템 추가시에만 TTL부여
* refactor : 정답 채점 개선

* refactor : AI 정답 채점 결과 확인 메서드 분리

* feat : 테스트 케이스 추가 및 그에 따른 일부 코드 변경
* feat : 각 발송 전략 별 Bucket 생성

* refactor : 전략키 유효성 검증 로직 별도 메서드로 분리

* feat : Bucket 반환 메서드 추가

* feat : mailContext 클래스 기반 Bucket 사용 적용

* refactor : 불필요한 코드 및 요소 삭제
* feat: build.gradle Brave MCP연동 위한 의존성 추가

* feat:MCP 클라이언트 핵심 모듈 의존성 추가

* feat:application.propoerties에 필요 의존성 추가

* feat: Brave web search 툴을 호출해서 검색 결과를 가져오는 서비스 구현

* refactor: 브레이브 서치 결과 반영할 수 있도록 AiPromptProvider 리팩토링

* refactor: prompt.yaml 브레이브 서치 반영 수정

* Brave Search MCP를 통해 검색한 결과를 기반으로 Document 리스트를 반환하는 서비스 구현

* feat: bravesearch MCP 도입 기능 구현 및 로깅 추가

* chore: 불필요한 의존성 제거

* refactor: 외부 검색 실패 시 에러 처리 추가

* chore: API 키 추가
* refactor:streamworker 오탈자 수정

* refactor: 동적 워커 축소 종료 조건 도입

* chore: 중복 증가 오류 방식 및 인터럽트 종료 일관성 확보
# Conflicts:
#	cs25-service/src/main/java/com/example/cs25service/domain/security/common/XssRequestWrapper.java
* refactor/ MailLog JPA Distinct 추가

* refactor/ getTodayQuizBySubscription offset 오류 예외처리 추가
* feat : Long 타입 반환 메서드에 Query 추가

* refactor : 쿼리문 개선
* chore: MCP 도입할 때 필요한 npx 패키지 적용

* chore: 부팅 시 외부 프로세스 미실행 (요청 시 연결)
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Aug 11, 2025

Walkthrough

Dockerfile 변경으로 베이스 이미지를 eclipse-temurin:17-jre-jammy로 교체하고 Node.js/npm 설치 과정을 최소화·정리했으며, 글로벌로 @modelcontextprotocol/server-brave-search를 설치하고 캐시/패키지 정리를 추가했습니다. application.properties에서는 MCP 타임아웃 증가, Brave STDIO 인자 추가, ToolCallingAutoConfiguration 제외 설정을 적용했습니다.

Changes

Cohort / File(s) Summary
Docker/runtime setup
cs25-service/Dockerfile
베이스 이미지 openjdk:17 → eclipse-temurin:17-jre-jammy. Node.js 20 설치를 최소 권장 패키지로 재구성, 글로벌로 @modelcontextprotocol/server-brave-search 설치, npm/apt 캐시 및 불필요 패키지 정리. 빌드 중 버전 확인 제거. 멀티스테이지 및 JAR 복사 흐름은 동일.
Application configuration
cs25-service/src/main/resources/application.properties
MCP 클라이언트 요청 타임아웃 30s → 45s. Brave STDIO 연결에 --stdio 인자 추가. spring.autoconfigure.exclude로 ToolCallingAutoConfiguration 제외.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant App as Spring Boot App
    participant AutoCfg as Auto-config
    participant MCP as MCP Client
    participant Brave as Brave Search MCP (stdio)

    User->>App: 요청
    Note over App,AutoCfg: 부팅 시 Auto-config 로드
    AutoCfg-->>App: ToolCallingAutoConfiguration 제외
    App->>MCP: 요청 (timeout=45s)
    MCP->>Brave: stdio 실행 (--stdio)
    Brave-->>MCP: 결과
    MCP-->>App: 응답
    App-->>User: 응답 반환
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8–10 minutes

Possibly related PRs

Suggested reviewers

  • jong-0126
  • crocusia
  • Kimyoonbeom

Poem

토끼 발끝 퐁퐁, 잼미 바람 불고,
노드 깔끔 정리, 캐시는 사르르—
STDIO로 톡톡, 용건만 간단히!
타임아웃 늘려 딱 맞춘 호흡,
봄처럼 뜨는 앱, 바람처럼 응답해요. 🐇✨

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch dev

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
cs25-service/src/main/resources/application.properties (1)

72-72: STDIO 인자 추가는 적절 — 바이너리 PATH 확인을 빌드 단계에서 보장합시다

--stdio 인자 구성은 적절합니다. 다만 server-brave-search 바이너리가 런타임 PATH에 없으면 연결 실패합니다. Dockerfile에서 전역 설치를 하셨으니, 빌드 단계에서 존재 여부를 검증하도록 한 줄 추가를 권장합니다.

Dockerfile 해당 RUN 체인 끝부분에 다음을 추가해 빌드 타임 검증을 수행하세요:

 && rm -rf /var/lib/apt/lists/*
+ && command -v server-brave-search >/dev/null
cs25-service/Dockerfile (1)

24-33: Node/MCP 설치 체인 개선 제안 — 재현성 강화(버전 핀닝), 파이프페일, 존재 검증

현재 체인은 최소화가 잘 되어 있습니다. 다음 보강을 추천합니다.

  • 재현성: Node 메이저/패키지 버전 핀(rolling latest 회피)
  • 안전성: pipefail로 스크립트 오류 조기 중단
  • 검증: server-brave-search 존재 여부 빌드 타임 확인

아래와 같이 개선을 제안합니다(버전은 팀에서 검증한 값으로 핀 해주세요):

+SHELL ["/bin/bash", "-o", "pipefail", "-c"]
+# (선택) 빌드 인자 도입으로 버전 핀
+ARG NODE_MAJOR=20
+ARG BRAVE_SERVER_VERSION=0.2.6  # 팀에서 검증한 버전으로 지정

 RUN apt-get update \
  && apt-get install -y --no-install-recommends curl ca-certificates gnupg bash \
- && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \
+ && curl -fsSL https://deb.nodesource.com/setup_${NODE_MAJOR}.x | bash - \
  && apt-get install -y --no-install-recommends nodejs \
- && npm install -g @modelcontextprotocol/server-brave-search \
+ && npm install -g @modelcontextprotocol/server-brave-search@${BRAVE_SERVER_VERSION} \
  && npm cache clean --force \
  && apt-get purge -y gnupg \
  && apt-get autoremove -y --purge \
  && apt-get clean \
- && rm -rf /var/lib/apt/lists/*
+ && rm -rf /var/lib/apt/lists/* /root/.npm \
+ && command -v server-brave-search >/dev/null

추가로, 보안 강화를 위해 런타임 비루트 사용자 전환도 고려해 주세요(별도 레이어로 적용 가능).

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between be1c851 and 6cc8a13.

📒 Files selected for processing (2)
  • cs25-service/Dockerfile (2 hunks)
  • cs25-service/src/main/resources/application.properties (1 hunks)
🔇 Additional comments (3)
cs25-service/src/main/resources/application.properties (2)

75-75: ToolCallingAutoConfiguration 제외 영향 없음 확인

프로젝트 내에서 ToolCallingAutoConfiguration 에서 제공하는 Spring AI 도구 호출 Bean을 참조하거나 사용하는 부분이 없으므로, 해당 자동구성 제외 설정을 그대로 유지해도 문제가 없습니다.


68-68: MCP 요청 타임아웃(45s) 상향 적용 시 계층별 타임아웃 정합성 재확인 필요

  • spring.ai.mcp.client.request-timeout=45s 적용 (cs25-service/src/main/resources/application.properties:68)
  • server.tomcat.connection-timeout 미설정 → 기본값 확인 후 45s 이상으로 명시 설정 권장
  • Nginx(proxy_read_timeout, proxy_send_timeout 등) 설정 파일 없음 → 인프라 레벨에서 45s 이상인지 별도 확인 필요
  • WebClient/RestTemplate/OkHttpClient/Feign 등 클라이언트 타임아웃 미설정 → 45s 이상으로 적용 권장
  • OpenAI/Anthropic 클라이언트 타임아웃 설정도 함께 검토 바랍니다
cs25-service/Dockerfile (1)

15-15: JRE 베이스 이미지 전환: JDK 도구 호출 없음 확인
rg 검색 결과, jcmd, jmap, jstack, jfr 등 JDK 도구 호출은 코드베이스 내에서 발견되지 않았습니다.
경량화된 eclipse-temurin:17-jre-jammy로 전환해도 무방할 것으로 보입니다.

다만, 운영 환경의 스크립트나 외부 문서에 JDK 도구 호출이 숨어 있을 수 있으니 최종적으로 다음을 점검해 주세요:

  • CI/CD 혹은 배포 스크립트
  • 모니터링·로그 수집 스크립트
  • 운영 가이드·README 등 문서 내 JDK 도구 사용 언급

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants